SNiFF+ Java Shared Projects and Working Environments

This section very briefly introduces the SNiFF+ Project and Working Environment concepts as they apply to Java software systems. For more detailed information about projects and working environments, please refer to the User's Guide.
Projects
Shared Projects
A SNiFF+ Shared Project is, as the name suggests, suitable for team development.
Team members must be able to share and access source code to make changes to files and/or structure, regardless of what other team members are doing.
This means that the integrity of the project system as a whole needs to be maintained in some way, which is why Shared Projects are always used in conjunction with Working Environments and a configuration management and a version control (CMVC) tool.
Browsing-Only Projects
Browsing-only projects are quick and easy to set up, and require no further maintenance. You would use this type of project for stable libraries (e.g., the JDK sources) that are not subject to constant change, and where you do not require Make and dependency information to be generated.
For Java software systems, you would typically add the JDK sources to your own sources as a Browsing-Only subproject. This allows you to follow references and hierarchies all the way back to the root.
Working Environments
For Java projects, you need only two types of Working Environment, a Repository and Private Working Environments. These are described below, and how to go about setting them up is summarized in the following chapter.
Repository Working Environment (RWE)
You and your team members access and modify a permanent data Repository using commands provided by your underlying configuration management and version-control (CMVC) tool. SNiFF+ provides an interface to your CMVC tool.
In the Java tutorial, we use RCS, the CMVC tool provided with the SNiFF+ package.
Private Working Environment (PWE)
Developers must be able to work in isolation from other team members. They need their own workspaces where they can edit, compile and debug projects without interfering with the work of other team members. Furthermore, they continually need to have access to their software system's most current source code base.
SNiFF+ supports this by allowing each member of a team to work in an isolated Private Working Environment (PWE).
You can go through the entire edit/compile/debug cycle in your PWE. In your PWE, you have a read-only view to the shared source files located in your team's Repository. When you need to modify shared source files, you check out the necessary files from the Repository. When you're satisfied that the changes you've made are error free, you check the modified files back into your Repository. The next time that your colleagues update (synchronize) their PWEs, these changes are incorporated, and the shared source files once again reflect the most current state of your software system.